#include "config_task.h"

TaskHandle_t configHandler;
extern QueueHandle_t configMsgQueue;

void distributeMsg(char *msg);

//初始化配置任务 
void init_config_task()
{
    AT24CXX_Init();
}

//每秒钟进行一次数据的采集
void config_task(void* param)
{
    u16 value;
    while (1)
    {
        char *buf;
        //1.从消息队列中获取消息
        if(xQueueReceive(configMsgQueue,&buf,portMAX_DELAY)==pdTRUE){
            printf("config recv msg:%s \r\n",buf);

            //3.对消息做分发处理
            distributeMsg(buf);
        }
    }
}

void create_config_task()
{
    //创建一个任务  这个任务的目的就是去创建其他的任务
    //创建任务
    BaseType_t res= xTaskCreate(config_task,
                "config_task",
                128,
                NULL,
                2,
                &configHandler);

    if(res==pdPASS){
        printf("config_task create success! \r\n");
    }else{
        printf("config_task create error! \r\n");
    }
}

void distributeMsg(char *msg)
{
    int type =parseMsgType(msg);
     switch (type)
    {
    case MSG_TYPE_CONFIG:
        configThLogic(msg);
        break;
    case MSG_TYPE_CONFIG_NETWORK:
        configNetworkLogic(msg);
        break;
    default:
        break;
    }
}
